package fr.bludwarf.skywarrior.evenements;

import fr.bludwarf.skywarrior.global.Entite;
import fr.bludwarf.skywarrior.global.Etat;
import fr.bludwarf.skywarrior.global.EtatMonde;
import fr.bludwarf.skywarrior.ile.Progression;
import fr.bludwarf.skywarrior.joueur.EtatJoueur;

public abstract class Commencer<P extends Progression<E>, E extends Entite> extends Evenement
{

	private P _progression;

	public Commencer(P progression, double tempsRestant)
	{
		super(tempsRestant);
		_progression = progression;
	}
	
	public P getProgression()
	{
		return _progression;
	}

	@Override
	public void execute(EtatMonde etatMonde) throws Exception
	{
		this.commencerSur(etatMonde);
		
		// Si on a pu consommer les ressources, on commence la construction
		getProgression().commencer(etatMonde);
	}

	public abstract void commencerSur(EtatMonde etatMonde) throws Exception;

}